/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mvc.controladores;

import java.io.IOException;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import mvc.modelos.Aspirante;
import mvc.modelos.Persona;

/**
 *
 * @author pezcado
 */
public class RegistrarPersonaAction extends Action implements Serializable {

    String next=null;
    @Override
    public void run() throws ServletException, IOException {
        HttpSession sesion= request.getSession();
        
        int identificacion=(int) Integer.parseInt(request.getParameter("identificacion"));
        String tipoId=request.getParameter("tipoId");
        String nombre=request.getParameter("nombre");
        String apellido=request.getParameter("apellido");
        String telefono= request.getParameter("telefono");
        String correo=request.getParameter("correo");
        String direccion=request.getParameter("direccion");
        String nombreUsuario=request.getParameter("nombreDeUsuario");
        String tipoDePersona=request.getParameter("tipoDePersona");
        
        int id=(int) Integer.parseInt(request.getParameter("identificacion"));
        String estado= request.getParameter("estado");
        String descripcion=request.getParameter("descripcion");
        
        Persona p =new Persona();
        p.setIdentificacion(identificacion);
        p.setTipoId(tipoId);
        p.setNombre(nombre);
        p.setApellido(apellido);
        p.setTelefono(telefono);
        p.setCorreo(correo);
        p.setDireccion(direccion);
        p.setTipoDePersona(tipoDePersona);
        p.setId(id);
        p.setEstado(estado);
        p.setDescripcion(descripcion);        
        
        try {
            model.getPersonaDAO().insertar(p, nombreUsuario);
            
            if(p.getTipoDePersona().equals("Aspirante")){
                //capturo los datos adicionales del aspirante
                String codigoAspirante= request.getParameter("codigoAspirante");
                String tipoDeAspirante= request.getParameter("tipoDeAspirante");
                
                Aspirante aspirante= new Aspirante();
                aspirante.setIdentificacion(p.getIdentificacion());
                aspirante.setCodigo(Integer.parseInt(codigoAspirante));
                aspirante.setTipoAspirante(tipoDeAspirante);
                
                model.getAspiranteDAO().insertar(aspirante);
            }
        } catch (SQLException ex) {
            Logger.getLogger(RegistrarPersonaAction.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        String tipoUsuario= sesion.getAttribute("tipoUsuario").toString();
        
        if(tipoUsuario.equals("Administrador"))
            next="/MenuAdministrador.jsp";
        else if(tipoUsuario.equals("Aspirante"))
            next="/MenuAspirante.jsp";
        else if(tipoUsuario.equals("Director De Grupo"))
            next="/MenuDirectorDeGrupo.jsp";
        else if(tipoUsuario.equals("Jefe De cultura"))
            next="/MenuJefeDeCultura.jsp";
        else if(tipoUsuario.equals("Secretaria"))
            next="/MenuSecretaria.jsp";
        else
            next="/index.jsp";
        
        RequestDispatcher rd=application.getRequestDispatcher(next);
        if(rd==null)
            throw new ServletException("no se pudo encontrar la pagina: "+next);
        rd.forward(request, response);
        
    }
    
}
